package cn.bluethink.zentao.mapper;

import java.util.List;
import java.util.Map;

import cn.bluethink.zentao.entity.ZtStatisticsEntity;
import cn.bluethink.zentao.entity.ZtTaskEntity;
import cn.bluethink.zentao.entity.ZtUserEntity;
import cn.bluethink.zentao.filter.ZentaoFilter;
 
/**
 * 禅道服务mepper层
 * 
 * @title 苏州中科蓝迪公司所有(c)2016-2021
 * @version 0.1.0
 * @describe 
 * @author fanBl
 * @date  2018年12月12日
 */
public interface ZentaoMapper   {
 
	/**
	 * 查询禅道中的项目列表（可根据项目ID查询，根据项目名模糊查询）
	 * 
	 * @param filter
	 * @return
	 * @throws Exception
	 */
	public List<ZtStatisticsEntity> zentaoprojects() throws Exception;

	/**
	 * 查询禅道用户列表（根据禅道项目Id和用户名）
	 * 
	 * @param filter
	 * @return
	 * @throws Exception
	 */
	public List<ZtUserEntity> zentaoUsers(ZentaoFilter filter) throws Exception;

	/**
	 * 查询禅道任务列表（根据禅道项目Id、截止日期、任务创建者和任务完成者）
	 * 
	 * @param filter
	 * @return
	 * @throws Exception
	 */
	public List<ZtTaskEntity> zentaoTasks(ZentaoFilter filter) throws Exception;

	/**
	 * 统计禅道中的数据 禅道用户Id ,禅道用户名 ,预计工时 ,消耗总工时
	 * 
	 * @param filter
	 * @return
	 * @throws Exception
	 */
	public List<ZtStatisticsEntity> zentaoStatistics(ZentaoFilter filter) throws Exception;

	/**
	 * 任务总个数
	 * 
	 * @return
	 */
	public List<Map<String, Object>> getZenTaoCountTask(ZentaoFilter filter) throws Exception;

	/**
	 * 任务完成个数
	 * 
	 * @param filter
	 * @return
	 * @throws Exception
	 */
	public List<Map<String, Object>> getZenTaoDoneTask(ZentaoFilter filter) throws Exception;

	/**
	 * 任务延迟个数
	 * 
	 * @param filter
	 * @return
	 * @throws Exception
	 */
	public List<Map<String, Object>> getZenTaoDelayTask(ZentaoFilter filter) throws Exception;

	/**
	 * 根据条件获取禅道延误任务情况（包括备注）
	 * 
	 * @param filter
	 * @return
	 * @throws Exception
	 */
	public List<ZtTaskEntity> delaytasks(ZentaoFilter filter) throws Exception;
	
	/**
	 * 项目中的统计人数
	 * 
	 * @param pid
	 * @return
	 * @throws Exception
	 */
	public List<Map<String, Object>> projectStaffs(ZentaoFilter filter) throws Exception;
	
	/**
	 * 项目中统计已完成任务
	 * 
	 * @param filter
	 * @return
	 * @throws Exception
	 */
	public List<Map<String, Object>> projectFinish(ZentaoFilter filter) throws Exception;
	
	/**
	 * 项目中统计延误任务
	 * 
	 * @param filter
	 * @return
	 * @throws Exception
	 */
	public List<Map<String, Object>> projectDelay(ZentaoFilter filter) throws Exception;
	
}
